Marvel API - Get personages met Ajax bibliotheek
Stappen
Uit het voorbeeld van de interactieve documentatie halen we de url op:
https://gateway.marvel.com:443/v1/public/characters?apikey=5e50ffa08294f9673a4876bb8738ab43
We willen 100 (dat is het maximum aantal) items ophalen:
https://gateway.marvel.com:443/v1/public/characters?limit=100&apikey=5e50ffa08294f9673a4876bb8738ab43
Of alle personnages die beginnen met een s:
https://gateway.marvel.com:443/v1/public/characters?nameStartsWith=s&apikey=5e50ffa08294f9673a4876bb8738ab43
We laden de ajax.js
library:
<script type="text/javascript" src="js/ajax.js"></script>
We maken een instantie van de Ajax
klasse in het onload
event van het window
object omdat de pagina volledig geladen moet zijn alvoerens de JavaScript code uit te voeren:
window.onload = function() { var ajax = new Ajax(); }
Een vab de hierboven vermelde url's stoppen we in onze ajax call:
window.onload = function() { var ajax = new Ajax(); ajax.getRequest('https://gateway.marvel.com:443/v1/public/characters?limit=100&apikey=5e50ffa08294f9673a4876bb8738ab43', showMarvelCharacters); }
En we maken die functie die moet worden uitgevoerd als de browser het antwoord van de server heeft gekregen:
function showMarvelCharacters(response) { // convert JSON to array // we zijn alleen geïnteresseerd in de personnages var characters = JSON.parse(response).data.results; var table = document.createElement('table'); characters.map(function(character) { var row = document.createElement('tr'); var name = document.createElement('td'); var textContent = document.createTextNode(character.name); name.appendChild(textContent); row.appendChild(name); table.appendChild(row); }); document.body.appendChild(table); }
Volledige code
De volgende code plaats je in een bestand met de naam marvel-GET-met-ajax-library.html
. Vergeet niet dat je het ajax.js (code vind je in Een Ajax bibliotheek) bestand moet staan hebben in de folder met de naam js:
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Ajax library gebruiken om toegang te krijgen tot Marvel API's</title> <script type="text/javascript" src="js/ajax.js"></script> <script> window.onload = function() { var ajax = new Ajax(); ajax.getRequest('https://gateway.marvel.com:443/v1/public/characters?limit=100&apikey=5e50ffa08294f9673a4876bb8738ab43', showMarvelCharacters); } function showMarvelCharacters(response) { // convert JSON to array // we zijn alleen geïnteresseerd in de personnages var characters = JSON.parse(response).data.results; var table = document.createElement('table'); characters.map(function(character) { var row = document.createElement('tr'); var name = document.createElement('td'); var textContent = document.createTextNode(character.name); name.appendChild(textContent); row.appendChild(name); table.appendChild(row); }); document.body.appendChild(table); } </script> </head> <body> </body> </html>